import {
  createRouter,
  createWebHistory,
  createWebHashHistory,
} from 'vue-router';
import NProgress from 'nprogress'; // progress bar
import { REDIRECT_ROUTE_NAME } from '@/router/constants';
import { afterEach, beforeEachs } from './guard/permission';
import 'nprogress/nprogress.css';

// import { appClientRoutes, appSupplierRoutes } from './routes';

import { REDIRECT_MAIN, NOT_FOUND_ROUTE } from './routes/base';
import createRouteGuard from './guard';

export const DEFAULT_LAYOUT = () => import('@/layout/default-layout.vue');

export const constantRoutes: Array<any> = [
  {
    path: '/',
    redirect: 'login',
  },
  {
    path: '/login',
    name: 'login',
    component: () => import('@/views/client-side/login/index.vue'),
    meta: {
      requiresAuth: false,
    },
  },
  {
    path: '/test',
    name: 'test',
    component: () => import('@/views/test.vue'),
    meta: {
      requiresAuth: false,
    },
  },
  {
    path: '/redirect',
    name: 'redirectWrapper',
    component: DEFAULT_LAYOUT,
    meta: {
      requiresAuth: true,
      hideInMenu: true,
    },
    children: [
      {
        path: '/redirect/:path',
        name: REDIRECT_ROUTE_NAME,
        component: () => import('@/views/redirect/index.vue'),
        meta: {
          requiresAuth: true,
          hideInMenu: true,
        },
      },
    ],
  },
  // {
  //   path: '/homepage',
  //   name: 'homepage',
  //   component: DEFAULT_LAYOUT,
  //   meta: {
  //     locale: '首页',
  //     requiresAuth: true,
  //     icon: 'icon-home',
  //     order: 0,
  //     hideInMenu: false,
  //     key: '1',
  //   },
  //   redirect: {
  //     name: 'Workplace',
  //   },
  //   children: [
  //     {
  //       path: 'workplace',
  //       name: 'Workplace',
  //       component: () =>
  //         import('@/views/client-side/home-page/work-place/index.vue'),
  //       meta: {
  //         locale: '工作台',
  //         requiresAuth: true,
  //         icon: 'icon-computer',
  //         roles: ['*'],
  //         hideInMenu: false,
  //       },
  //     },
  //   ],
  // },
  // NOT_FOUND_ROUTE,
];

const router = createRouter({
  history: createWebHistory(),
  routes: constantRoutes,
});

router.beforeEach(beforeEachs);
router.afterEach(afterEach);

export default router;

// const router = createRouter({
//   history: createWebHistory(),
//   routes: [
//     {
//       path: '/',
//       redirect: 'login',
//     },
//     {
//       path: '/login',
//       name: 'login',
//       component: () => import('@/views/client-side/login/index.vue'),
//       meta: {
//         requiresAuth: false,
//       },
//     },
//     {
//       path: '/test',
//       name: 'test',
//       component: () => import('@/views/test.vue'),
//       meta: {
//         requiresAuth: false,
//       },
//     },
//     {
//       path: '/redirect',
//       name: 'redirectWrapper',
//       component: DEFAULT_LAYOUT,
//       meta: {
//         requiresAuth: true,
//         hideInMenu: true,
//       },
//       children: [
//         {
//           path: '/redirect/:path',
//           name: REDIRECT_ROUTE_NAME,
//           component: () => import('@/views/redirect/index.vue'),
//           meta: {
//             requiresAuth: true,
//             hideInMenu: true,
//           },
//         },
//       ],
//     },
//     {
//       path: '/homepage',
//       name: 'homepage',
//       component: DEFAULT_LAYOUT,
//       meta: {
//         locale: '首页',
//         requiresAuth: true,
//         icon: 'icon-home',
//         order: 0,
//         hideInMenu: false,
//         key: '1',
//       },
//       redirect: {
//         name: 'Workplace',
//       },
//       children: [
//         {
//           path: 'workplace',
//           name: 'Workplace',
//           component: () =>
//             import('@/views/client-side/home-page/work-place/index.vue'),
//           meta: {
//             locale: '工作台',
//             requiresAuth: true,
//             icon: 'icon-computer',
//             roles: ['*'],
//             hideInMenu: false,
//           },
//         },
//       ],
//     },

//     // {
//     //   path: '/purchase-forms',
//     //   name: 'purchaseForms',
//     //   component: () =>
//     //     import('@/views/contract-management/purchase-forms.vue'),
//     //   meta: {
//     //     locale: '采购类表单控件',
//     //     requiresAuth: true,
//     //     icon: 'icon-share-alt',
//     //     roles: ['*'],
//     //     hideInMenu: false,
//     //   },
//     // },
//     // {
//     //   path: '/form-control-create',
//     //   name: 'formControlCreate',
//     //   component: () =>
//     //     import(
//     //       '@/views/order-management/base-setting/demand-form/demand-form-create/compenents/formControlCreate.vue'
//     //     ),
//     //   meta: {
//     //     locale: '表单控件',
//     //     requiresAuth: true,
//     //     roles: ['*'],
//     //     hideInMenu: true,
//     //   },
//     // },
//     // REDIRECT_MAIN,
//     NOT_FOUND_ROUTE,
//     // ...appClientRoutes,
//     // ...appSupplierRoutes,
//   ],
//   scrollBehavior() {
//     return { top: 0 };
//   },
// });

// createRouteGuard(router);

// export default router;
